package com.demo.java.OD1_50.OD34;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【矩阵扩散】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145557841
 */
public class OdMain {

    public static int m;
    public static int n;

    private static int solveMethod(int[][] array) {
        int result = 0;

        // 只要数组中还存在0
        while (isContainZero(array)) {
            int[][] arrayTemp = new int[m][n];  // 临时存储扩展后的状态

            // 扩展所有1的周围位置
            for (int a = 0; a < m; ++a) {
                for (int b = 0; b < n; ++b) {
                    if (array[a][b] == 1) {
                        arrayTemp[a][b] = 1;  // 当前为1的位置

                        // 扩展上下左右位置
                        if (a - 1 >= 0) arrayTemp[a - 1][b] = 1;  // 上
                        if (a + 1 < m) arrayTemp[a + 1][b] = 1;   // 下
                        if (b - 1 >= 0) arrayTemp[a][b - 1] = 1;  // 左
                        if (b + 1 < n) arrayTemp[a][b + 1] = 1;   // 右
                    }
                }
            }
            array = arrayTemp;  // 更新为扩展后的数组
            result++;  // 增加一次扩展
        }
        return result;
    }

    // 判断数组中是否还存在0
    public static boolean isContainZero(int[][] array) {
        for (int k = 0; k < m; k++) {
            for (int i = 0; i < n; i++) {
                if (array[k][i] == 0) {
                    return true;  // 还有0存在
                }
            }
        }
        return false;  // 没有0
    }

    public static void main(String[] args) {
        try {
            Scanner s = new Scanner(System.in);
            String[] split = s.nextLine().split(",");
            m = Integer.parseInt(split[0]);
            n = Integer.parseInt(split[1]);
            int[][] array = new int[m][n];

            // 设置初始为1的坐标
            array[Integer.parseInt(split[2])][Integer.parseInt(split[3])] = 1;
            array[Integer.parseInt(split[4])][Integer.parseInt(split[5])] = 1;

            System.out.println(solveMethod(array));  // 输出扩展次数

        } catch (Exception e) {
            e.printStackTrace();  // 错误处理
        }
    }
}